﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;

namespace EvaluacionWebRole
{
    public partial class resultado : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {

                string codigoExamen = GetCookieString("CodigoExamen");
                string claveExamen = GetCookieString("ClaveExamen");

                if (Request.QueryString["Mensaje"] != null)
                {
                    lblResultado.Text = Request.QueryString["Mensaje"] + "<br/><br/>";
                }
                if ((codigoExamen != "Unknown") && (claveExamen != "Unknown"))
                {
                    ObtenerCalificacion(claveExamen, codigoExamen);                    
                }
                
                
                
                
            }

        }

        private void ObtenerCalificacion(string claveExamen, string codigoExamen)
        {
            var ec = new ServicioExamenesCodigos.ExamenesCodigosClient();
            //LogicaDeNegocios.ExamenesCodigos ec = new LogicaDeNegocios.ExamenesCodigos();
            var resultado = ec.CalificarExamen(claveExamen, codigoExamen);

            StringBuilder sb = new StringBuilder();

            if (resultado.Aprobado)
            {
                sb.AppendLine(string.Format("Examen aprobado. {0}% <br/>", resultado.Porcentaje));
            }
            else
            {
                sb.AppendLine(string.Format("Examen reprobado. {0}%<br/>", resultado.Porcentaje));
            }

            sb.AppendLine(string.Format("Número de preguntas en total:{0}<br/>", resultado.PreguntasTotales));
            sb.AppendLine(string.Format("Número de preguntas correctas:{0}<br/>", resultado.PreguntasCorrectas));
            sb.AppendLine(string.Format("Número de preguntas incorrectas:{0}<br/>", resultado.PreguntasIncorrectas));
            sb.AppendLine(string.Format("Número de preguntas sin contestar:{0}<br/>", resultado.PreguntasSinContestar));

            lblResultado.Text += sb.ToString();
        }


        protected void btnReiniciar_Click(object sender, EventArgs e)
        {

            this.DeleteCookies();
            Response.Redirect("Default.aspx");
        }

        #region cOOKIES
        private string GetCookieString(string keyName)
        {
            if (Request.Cookies[keyName] != null)
            {
                return Request.Cookies[keyName].Value;
            }

            return "Unknown";
        }

        private int GetCookieInt(string keyName)
        {
            if (Request.Cookies[keyName] != null)
            {
                return int.Parse(Request.Cookies[keyName].Value);
            }

            return 0;
        }

        private void DeleteCookies()
        {
            foreach (string keyName in Request.Cookies.AllKeys)
            {
                Response.Cookies[keyName].Value = string.Empty;
                Response.Cookies[keyName].Expires = DateTime.Now.AddDays(-1);
            }
        } 
        #endregion
    }
}